home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / Kubuntu 8.10 / kubuntu-8.10-desktop-i386.iso / casper / filesystem.squashfs / usr / include / linux / if_ppp.h < prev    next >
C/C++ Source or Header  |  2008-10-24  |  7KB  |  173 lines

  1. /*
  2.  * if_ppp.h - Point-to-Point Protocol definitions.
  3.  *
  4.  * Copyright (c) 1989 Carnegie Mellon University.
  5.  * All rights reserved.
  6.  *
  7.  * Redistribution and use in source and binary forms are permitted
  8.  * provided that the above copyright notice and this paragraph are
  9.  * duplicated in all such forms and that any documentation,
  10.  * advertising materials, and other materials related to such
  11.  * distribution and use acknowledge that the software was developed
  12.  * by Carnegie Mellon University.  The name of the
  13.  * University may not be used to endorse or promote products derived
  14.  * from this software without specific prior written permission.
  15.  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
  16.  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  17.  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  18.  *
  19.  */
  20.  
  21. /*
  22.  *  ==FILEVERSION 20050812==
  23.  *
  24.  *  NOTE TO MAINTAINERS:
  25.  *     If you modify this file at all, please set the above date.
  26.  *     if_ppp.h is shipped with a PPP distribution as well as with the kernel;
  27.  *     if everyone increases the FILEVERSION number above, then scripts
  28.  *     can do the right thing when deciding whether to install a new if_ppp.h
  29.  *     file.  Don't change the format of that line otherwise, so the
  30.  *     installation script can recognize it.
  31.  */
  32.  
  33. #ifndef _IF_PPP_H_
  34. #define _IF_PPP_H_
  35.  
  36.  
  37.  
  38. /*
  39.  * Packet sizes
  40.  */
  41.  
  42. #define    PPP_MTU        1500    /* Default MTU (size of Info field) */
  43. #define PPP_MAXMRU    65000    /* Largest MRU we allow */
  44. #define PROTO_IPX    0x002b    /* protocol numbers */
  45. #define PROTO_DNA_RT    0x0027  /* DNA Routing */
  46.  
  47.  
  48. /*
  49.  * Bit definitions for flags.
  50.  */
  51.  
  52. #define SC_COMP_PROT    0x00000001    /* protocol compression (output) */
  53. #define SC_COMP_AC    0x00000002    /* header compression (output) */
  54. #define    SC_COMP_TCP    0x00000004    /* TCP (VJ) compression (output) */
  55. #define SC_NO_TCP_CCID    0x00000008    /* disable VJ connection-id comp. */
  56. #define SC_REJ_COMP_AC    0x00000010    /* reject adrs/ctrl comp. on input */
  57. #define SC_REJ_COMP_TCP    0x00000020    /* reject TCP (VJ) comp. on input */
  58. #define SC_CCP_OPEN    0x00000040    /* Look at CCP packets */
  59. #define SC_CCP_UP    0x00000080    /* May send/recv compressed packets */
  60. #define SC_ENABLE_IP    0x00000100    /* IP packets may be exchanged */
  61. #define SC_LOOP_TRAFFIC    0x00000200    /* send traffic to pppd */
  62. #define SC_MULTILINK    0x00000400    /* do multilink encapsulation */
  63. #define SC_MP_SHORTSEQ    0x00000800    /* use short MP sequence numbers */
  64. #define SC_COMP_RUN    0x00001000    /* compressor has been inited */
  65. #define SC_DECOMP_RUN    0x00002000    /* decompressor has been inited */
  66. #define SC_MP_XSHORTSEQ    0x00004000    /* transmit short MP seq numbers */
  67. #define SC_DEBUG    0x00010000    /* enable debug messages */
  68. #define SC_LOG_INPKT    0x00020000    /* log contents of good pkts recvd */
  69. #define SC_LOG_OUTPKT    0x00040000    /* log contents of pkts sent */
  70. #define SC_LOG_RAWIN    0x00080000    /* log all chars received */
  71. #define SC_LOG_FLUSH    0x00100000    /* log all chars flushed */
  72. #define    SC_SYNC        0x00200000    /* synchronous serial mode */
  73. #define    SC_MUST_COMP    0x00400000    /* no uncompressed packets may be sent or received */
  74. #define    SC_MASK        0x0f600fff    /* bits that user can change */
  75.  
  76. /* state bits */
  77. #define SC_XMIT_BUSY    0x10000000    /* (used by isdn_ppp?) */
  78. #define SC_RCV_ODDP    0x08000000    /* have rcvd char with odd parity */
  79. #define SC_RCV_EVNP    0x04000000    /* have rcvd char with even parity */
  80. #define SC_RCV_B7_1    0x02000000    /* have rcvd char with bit 7 = 1 */
  81. #define SC_RCV_B7_0    0x01000000    /* have rcvd char with bit 7 = 0 */
  82. #define SC_DC_FERROR    0x00800000    /* fatal decomp error detected */
  83. #define SC_DC_ERROR    0x00400000    /* non-fatal decomp error detected */
  84.  
  85. /*
  86.  * Ioctl definitions.
  87.  */
  88.  
  89. struct npioctl {
  90.     int        protocol;    /* PPP protocol, e.g. PPP_IP */
  91.     enum NPmode    mode;
  92. };
  93.  
  94. /* Structure describing a CCP configuration option, for PPPIOCSCOMPRESS */
  95. struct ppp_option_data {
  96.     __u8    *ptr;
  97.     __u32    length;
  98.     int    transmit;
  99. };
  100.  
  101. struct ifpppstatsreq {
  102.     struct ifreq     b;
  103.     struct ppp_stats stats;            /* statistic information */
  104. };
  105.  
  106. struct ifpppcstatsreq {
  107.     struct ifreq          b;
  108.     struct ppp_comp_stats stats;
  109. };
  110.  
  111. /* For PPPIOCGL2TPSTATS */
  112. struct pppol2tp_ioc_stats {
  113.     __u16        tunnel_id;    /* redundant */
  114.     __u16        session_id;    /* if zero, get tunnel stats */
  115.     __u32        using_ipsec:1;    /* valid only for session_id == 0 */
  116.     aligned_u64    tx_packets;
  117.     aligned_u64    tx_bytes;
  118.     aligned_u64    tx_errors;
  119.     aligned_u64    rx_packets;
  120.     aligned_u64    rx_bytes;
  121.     aligned_u64    rx_seq_discards;
  122.     aligned_u64    rx_oos_packets;
  123.     aligned_u64    rx_errors;
  124. };
  125.  
  126. #define ifr__name       b.ifr_ifrn.ifrn_name
  127. #define stats_ptr       b.ifr_ifru.ifru_data
  128.  
  129. /*
  130.  * Ioctl definitions.
  131.  */
  132.  
  133. #define    PPPIOCGFLAGS    _IOR('t', 90, int)    /* get configuration flags */
  134. #define    PPPIOCSFLAGS    _IOW('t', 89, int)    /* set configuration flags */
  135. #define    PPPIOCGASYNCMAP    _IOR('t', 88, int)    /* get async map */
  136. #define    PPPIOCSASYNCMAP    _IOW('t', 87, int)    /* set async map */
  137. #define    PPPIOCGUNIT    _IOR('t', 86, int)    /* get ppp unit number */
  138. #define    PPPIOCGRASYNCMAP _IOR('t', 85, int)    /* get receive async map */
  139. #define    PPPIOCSRASYNCMAP _IOW('t', 84, int)    /* set receive async map */
  140. #define    PPPIOCGMRU    _IOR('t', 83, int)    /* get max receive unit */
  141. #define    PPPIOCSMRU    _IOW('t', 82, int)    /* set max receive unit */
  142. #define    PPPIOCSMAXCID    _IOW('t', 81, int)    /* set VJ max slot ID */
  143. #define PPPIOCGXASYNCMAP _IOR('t', 80, ext_accm) /* get extended ACCM */
  144. #define PPPIOCSXASYNCMAP _IOW('t', 79, ext_accm) /* set extended ACCM */
  145. #define PPPIOCXFERUNIT    _IO('t', 78)        /* transfer PPP unit */
  146. #define PPPIOCSCOMPRESS    _IOW('t', 77, struct ppp_option_data)
  147. #define PPPIOCGNPMODE    _IOWR('t', 76, struct npioctl) /* get NP mode */
  148. #define PPPIOCSNPMODE    _IOW('t', 75, struct npioctl)  /* set NP mode */
  149. #define PPPIOCSPASS    _IOW('t', 71, struct sock_fprog) /* set pass filter */
  150. #define PPPIOCSACTIVE    _IOW('t', 70, struct sock_fprog) /* set active filt */
  151. #define PPPIOCGDEBUG    _IOR('t', 65, int)    /* Read debug level */
  152. #define PPPIOCSDEBUG    _IOW('t', 64, int)    /* Set debug level */
  153. #define PPPIOCGIDLE    _IOR('t', 63, struct ppp_idle) /* get idle time */
  154. #define PPPIOCNEWUNIT    _IOWR('t', 62, int)    /* create new ppp unit */
  155. #define PPPIOCATTACH    _IOW('t', 61, int)    /* attach to ppp unit */
  156. #define PPPIOCDETACH    _IOW('t', 60, int)    /* detach from ppp unit/chan */
  157. #define PPPIOCSMRRU    _IOW('t', 59, int)    /* set multilink MRU */
  158. #define PPPIOCCONNECT    _IOW('t', 58, int)    /* connect channel to unit */
  159. #define PPPIOCDISCONN    _IO('t', 57)        /* disconnect channel */
  160. #define PPPIOCATTCHAN    _IOW('t', 56, int)    /* attach to ppp channel */
  161. #define PPPIOCGCHAN    _IOR('t', 55, int)    /* get ppp channel number */
  162. #define PPPIOCGL2TPSTATS _IOR('t', 54, struct pppol2tp_ioc_stats)
  163.  
  164. #define SIOCGPPPSTATS   (SIOCDEVPRIVATE + 0)
  165. #define SIOCGPPPVER     (SIOCDEVPRIVATE + 1)    /* NEVER change this!! */
  166. #define SIOCGPPPCSTATS  (SIOCDEVPRIVATE + 2)
  167.  
  168. #if !defined(ifr_mtu)
  169. #define ifr_mtu    ifr_ifru.ifru_metric
  170. #endif
  171.  
  172. #endif /* _IF_PPP_H_ */
  173.